home *** CD-ROM | disk | FTP | other *** search
/ Computer Inter@ctive 17 / Computer Interactive cdrom 17 - gen 99.iso / ZDNETIT / CONTENT / OPTIVDOS.ZIP / INCLUDE.ZIP / VLIMATH.H < prev    next >
Encoding:
C/C++ Source or Header  |  1998-10-21  |  3.2 KB  |  82 lines

  1. /*  VLImath.h
  2.  
  3.   vector management functions for data type "long":
  4.   integer arithmetics and mathematics.
  5.  
  6.   Copyright (c) 1996-1998 by Martin Sander
  7.   All Rights Reserved.
  8. */
  9.  
  10. #ifndef __VLIMATH_H
  11. #define __VLIMATH_H
  12.  
  13. #if !defined( __VECLIB_H )
  14.    #include <VecLib.h>
  15. #endif
  16.  
  17. #ifdef __cplusplus
  18.    extern "C" {
  19. #endif
  20.  
  21. /******************   Basic  Arithmetics   *************************/
  22.  
  23. void  __vf  VLI_neg( liVector Y, liVector X, ui size );
  24. void  __vf  VLI_abs( liVector Y, liVector X, ui size );
  25.  
  26. void  __vf  VLIo_addC(  liVector Y, liVector X, ui size, long C );
  27. void  __vf  VLIo_subC(  liVector Y, liVector X, ui size, long C );
  28. void  __vf  VLIo_subrC( liVector Y, liVector X, ui size, long C );
  29. void  __vf  VLIo_mulC(  liVector Y, liVector X, ui size, long C );
  30. #ifdef V_trapIntError
  31.     #define VLI_addC    VLIo_addC
  32.     #define VLI_subC    VLIo_subC
  33.     #define VLI_subrC   VLIo_subrC
  34.     #define VLI_mulC    VLIo_mulC
  35. #else
  36.     void  __vf  VLI_addC(  liVector Y, liVector X, ui size, long C );
  37.     void  __vf  VLI_subC(  liVector Y, liVector X, ui size, long C );
  38.     void  __vf  VLI_subrC( liVector Y, liVector X, ui size, long C );
  39.     void  __vf  VLI_mulC(  liVector Y, liVector X, ui size, long C );
  40. #endif
  41. void  __vf  VLI_divC(  liVector Y, liVector X, ui size, long C );
  42. void  __vf  VLI_divrC( liVector Y, liVector X, ui size, long C );
  43. void  __vf  VLI_modC(  liVector Y, liVector X, ui size, long C );
  44. void  __vf  VLI_maxC(  liVector Y, liVector X, ui size, long C );
  45. void  __vf  VLI_minC(  liVector Y, liVector X, ui size, long C );
  46.  
  47. void    __vf  VLIo_addV(  liVector Z, liVector X, liVector Y, ui size );
  48. void    __vf  VLIo_subV(  liVector Z, liVector X, liVector Y, ui size );
  49. void    __vf  VLIo_subrV( liVector Z, liVector X, liVector Y, ui size );
  50. void    __vf  VLIo_mulV(  liVector Z, liVector X, liVector Y, ui size );
  51. #ifdef V_trapIntError
  52.     #define VLI_addV    VLIo_addV
  53.     #define VLI_subV    VLIo_subV
  54.     #define VLI_subrV   VLIo_subrV
  55.     #define VLI_mulV    VLIo_mulV
  56. #else
  57.     void    __vf  VLI_addV(  liVector Z, liVector X, liVector Y, ui size );
  58.     void    __vf  VLI_subV(  liVector Z, liVector X, liVector Y, ui size );
  59.     void    __vf  VLI_subrV( liVector Z, liVector X, liVector Y, ui size );
  60.     void    __vf  VLI_mulV(  liVector Z, liVector X, liVector Y, ui size );
  61. #endif
  62. void    __vf  VLI_divV(  liVector Z, liVector X, liVector Y, ui size );
  63. void    __vf  VLI_divrV( liVector Z, liVector X, liVector Y, ui size );
  64. void    __vf  VLI_modV(  liVector Z, liVector X, liVector Y, ui size );
  65. void    __vf  VLI_maxV(  liVector Z, liVector X, liVector Y, ui size );
  66. void    __vf  VLI_minV(  liVector Z, liVector X, liVector Y, ui size );
  67.  
  68. /*****************   Bit-wise operations  *********************/
  69.  
  70. void    __vf  VLI_shl( liVector Y, liVector X, ui size, unsigned C );
  71. void    __vf  VLI_shr( liVector Y, liVector X, ui size, unsigned C );
  72.  
  73. void    __vf  VLI_and( liVector Y, liVector X, ui size, long C );
  74. void    __vf  VLI_or(  liVector Y, liVector X, ui size, long C );
  75. void    __vf  VLI_xor( liVector Y, liVector X, ui size, long C );
  76. void    __vf  VLI_not( liVector Y, liVector X, ui size );
  77.  
  78. #ifdef __cplusplus
  79. }
  80. #endif
  81.  
  82. #endif   /*  __VLIMATH_H    */